In a typical remote computing environment, a server computer can host applications for use by remote client devices. A user can remotely access the applications by establishing a connection over a network between the server computer on one end and a remote client device at the user end. The connection creates a remote session on the server computer during which the user can interact with and use applications hosted on the server computer as if the applications were present locally on the remote client device.
When multiple client devices (clients) establish connections with the server computer, the available network bandwidth is distributed amongst the clients to enable simultaneous data transfer, between the multiple clients and the server. Typically, the distribution of bandwidth is random and the clients compete with each other for the available bandwidth. Therefore, deploying large applications, or large number of data requests and transfer of large volumes of data can lead to traffic congestion in the network. Traffic congestion leads to uncontrolled delay in data transfer. Delays beyond acceptable levels can cause interruptions in the application thus hampering the end-user experience.